from threading import Lock, Thread
from typing import List

list_lock = Lock()


def sum_list(int_list: List[int]) -> int:
    print("等待获取锁...")
    with list_lock:
        print("获取到了锁.")
        if len(int_list) == 0:
            print("结束计算.")
            return 0
        else:
            head, *tail = int_list
            print(f"剩余的列表：{tail}")
            return head + sum_list(tail)

# 上一次锁未释放，导致递归的时候，再次获取锁的时候，会出现等待上一把锁释放，但是第一把锁未释放，出现了死锁
print(sum_list([1, 2, 3, 4, 5, 6]))
